package com.zhangtai.modules.vo;

import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.zhangtai.config.LongJsonDeserializer;
import com.zhangtai.config.LongJsonSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;


@Data
public class DimissionInfoVo implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long id;
    /**
     * 流程编号
     */
    @ApiModelProperty(value = "流程编号", required = false)
    private String processNumber;
    /**
     * 申请人id
     */
    @NotNull(message = "申请人id不能为空")
    @ApiModelProperty(value = "申请人id", required = false)
    private Long applyOid;
    /**
     * 申请人code
     */
    @ApiModelProperty(value = "申请人code", required = false)
    private String applyCode;
    /**
     * 申请人名字
     */
    @ApiModelProperty(value = "申请人名字", required = false)
    private String applyName;
    /**
     * 申请日期
     */
    @ApiModelProperty(value = "申请日期", required = false)
    private Date applyTime;

    /**
     * 申请日期
     */
    @ApiModelProperty(value = "申请部门", required = false)
    private String applyDepartment;

    /**
     * 员工id
     */
    @NotNull(message = "员工id不能为空")
    @ApiModelProperty(value = "员工id", required = false)
    private Long oid;


    /**
     * 工作年限 司龄
     */
    @ApiModelProperty(value = "作年限 司龄", required = false)
    private String workingYears;

    /**
     * 离职日期
     */
    @NotNull(message = "离职日期不能为空")
    @ApiModelProperty(value = "离职日期", required = false)
    private Date dimissionTime;
    /**
     * 离职方式
     */
    @ApiModelProperty(value = "离职方式", required = false)
    private String mode;
    /**
     * 离职类型
     */
    @ApiModelProperty(value = "离职类型", required = false)
    private String dimissionType;
    /**
     * 离职原因
     */
    @ApiModelProperty(value = "离职原因", required = false)
    private String reason;
    /**
     * 保密协议
     */
    @ApiModelProperty(value = "保密协议", required = false)
    private String secrecy;
    /**
     * 审批状态：0.待审批，1审批中 2. 已审批，3.作废
     */
    @ApiModelProperty(value = "审批状态", required = false)
    private String rurnoverStatus;
    /**
     * 违约金补偿
     */
    @ApiModelProperty(value = "违约金补偿", required = false)
    private Long liquidatedDamages;
    /**
     * 离职去向
     */
    @ApiModelProperty(value = "离职去向", required = false)
    private String whereabouts;
    /**
     * 备注
     */
    @ApiModelProperty(value = "备注", required = false)
    private String remark;
    /**
     * 附件路径
     */
    @ApiModelProperty(value = "附件路径", required = false)
    private String urlIds;

    /**
     * 附件路径
     */
    @ApiModelProperty(value = "附件路径", required = false)
    private ArrayList<String> urlIdsList;


    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间", required = false)
    private Date createTime;
    /**
     * 消息推送状态 0：未发送 1已发送
     */
    @ApiModelProperty(value = "消息推送状态", required = false)
    private Integer isRemind;


    /**
     * 交接人
     */
    @ApiModelProperty(value = "交接人", required = false)
    private String associate;

    /**
     * 身份证号
     */
    @ApiModelProperty(value = "身份证号", required = false)
    private String idcard;

    /**
     * 手机号码
     */
    @ApiModelProperty(value = "手机号码", required = false)
    private String mobile;


    /**
     * 主管辅导
     */
    @ApiModelProperty(value = "主管辅导", required = false)
    private Integer spervisorCoaching;
    /**
     * 薪资报酬
     */
    @ApiModelProperty(value = "薪资报酬", required = false)
    private Integer slaryCompensation;
    /**
     * 工作时间
     */
    @ApiModelProperty(value = "工作时间", required = false)
    private Integer operatingHours;
    /**
     * 培训获得
     */
    @ApiModelProperty(value = "培训获得", required = false)
    private Integer trainingObtained;
    /**
     * 升迁机会
     */
    @ApiModelProperty(value = "升迁机会", required = false)
    private Integer promotionOpportunity;
    /**
     * 沟通渠道
     */
    @ApiModelProperty(value = "沟通渠道", required = false)
    private Integer communicationChannel;


}
